package com.tensquare.qa.client;

import com.tensquare.qa.client.impl.BaseClientImpl;
import entity.Result;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;

/**
 * @description
 * @author: xu1
 **/
//value 调谁写 谁的application name ，命名里面不能有 下划线
//fallback = BaseClientImpl.class 是feign调用失败后， 会执行的分支，分支里可以写很多业务。
// 和fallback 配合的 是要在配置文件里开启 feign自带的Hystrix
@FeignClient(value = "tensquare-base",fallback = BaseClientImpl.class)
public interface BaseClient {

    @RequestMapping(value = "/label/{labelId}", method = RequestMethod.GET)
    Result findById(@PathVariable("labelId") String labelId);

//不同：
    //接口里面 地址占位符里面{labelId} labelId 和形参的名字 一样就可以对得上，@PathVariable("labelId") 括号里的值 有没有无所谓
    //feign 的调用 @PathVariable("labelId")只看 括号里面的匹配映射（必须有），不看 后面形参是不是 对照

    //这写的 接口方法 不可以 乱改名字，控制层 那边 引用的 时候 可以改动
    //qa 调用 base 属于 客户端调客户端，这些项目模块都算客户端


}
